iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
Vibe Coding

從零打造 AI 全端應用:Vibe Coding 結合 n8n 視覺化工作流實戰系列 第 17 篇

Day 17:工作流中的 Prompt Engineering:讓 AI 讀懂你的商業邏輯與防幻覺心法

  • 分享至 

  • xImage
  •  

Day 17:工作流中的 Prompt Engineering:讓 AI 讀懂你的商業邏輯與防幻覺心法

嗨,大家今天過得好嗎?歡迎來到鐵人賽 Day 17。

昨天我們成功在 n8n 裡喚醒了 OpenAI / Gemini 的大腦,並測試了一句簡單的「你好」。但實務上,我們不可能在工作流裡面寫死文字。

我們手上有一包從前端傳來、從 PostgreSQL 撈出來、從外部 API 抓進來的綜合大禮包(JSON Payload)。今天,我們要把這些變數動態地「注入」到 AI 的 Prompt 裡面,讓 AI 能夠根據每一次不同的使用者需求,以及最新撈到的時價硬體清單,做出精準的推理。

這就是所謂的 「工作流中的提示詞工程 (Prompt Engineering in Workflow)」。

忘掉聊天室:工作流的 Prompt 必須是「鐵血紀律」

很多人在寫系統 Prompt 的時候,會不自覺地用平常在 ChatGPT 聊天室的語氣,例如:「請幫我根據使用者的預算配一台電腦,越划算越好喔謝謝!」

如果在工作流裡這樣寫,你保證會迎來一場災難。LLM 在沒有明確限制的情況下,非常喜歡「通靈」。如果你不給它極度明確的規則,它可能會推薦一張你資料庫裡根本沒有的顯示卡,或是自己發明一個完全錯誤的時價。

在系統級別的 Prompt,我們必須給出**「角色、任務、輸入資料、嚴格限制」**。

實作:將動態變數注入 Prompt

請打開你昨天的 Basic LLM Chain 節點。我們要來大幅度修改裡面的 Prompt 欄位。

在 n8n 裡面,要在 Prompt 插入變數,我們一樣使用雙大括號 {{ }} 包起來的 Expression(表達式)。你可以一邊寫 Prompt,一邊從左邊的輸入面板把變數拖拉進來。

請參考以下這段結合了「商業邏輯」與「動態變數」的實戰 Prompt 範本:

你是一位擁有 20 年經驗的資深電腦硬體組裝專家。
你的任務是根據使用者的「需求」與「預算」,從我們提供的「本期硬體清單」中,挑選出最適合的 CPU 與 GPU 組合。

【使用者需求與預算】
- 使用者用途:{{ $json.purpose }}
- 總預算:{{ $json.budget }} 台幣
- 今日美金匯率參考:{{ $json.rates.TWD }} (若需估算國外水貨可參考)

【本期可用硬體清單】
請注意!你【絕對只能】從以下提供的 JSON 清單中挑選硬體,嚴禁自行捏造型號或價格:
{{ JSON.stringify($json.hardware_list) }}

【挑選邏輯與限制】
1. 若用途為「3A 遊戲」,請將多數預算分配給 GPU。
2. 若用途為「影音剪輯」,請優先確保 CPU 效能。
3. 若用途為「文書處理」,盡量挑選帶有內顯的 CPU 以節省預算。
4. 挑選出的 CPU 與 GPU 總價,絕對不可以超過使用者的總預算 {{ $json.budget }} 台幣。
5. 請給出一段 50 字以內的推薦理由 (reason),說明為什麼這樣配最適合該用途。

** 踩坑小技巧:處理 JSON 物件變數**
仔細看上面 【本期可用硬體清單】 的地方,我寫的是 {{ JSON.stringify($json.hardware_list) }}。
因為 hardware_list 是一大包從 Postgres 撈出來的陣列物件,如果你直接用 {{ $json.hardware_list }} 塞進純文字的 Prompt 裡,它在底層會被轉成無意義的 [object Object] 字串,AI 根本看不懂。
加上 JSON.stringify(),才能確保它以完整的 JSON 字串格式餵給 AI 看。

測試推理結果

把這段強大的 Prompt 設定好之後,按下 Execute Node 測試一下!

如果前面的資料流都有正確傳遞,你會在 Output 視窗看到 AI 完美地執行了它的任務。它不僅正確解讀了前端傳來的預算與用途,而且「非常安分」地只從你提供的 Postgres 硬體清單中挑選了組合,並給出了極具說服力的推薦理由。

這就是 RAG (檢索增強生成) 的雛形!我們用自己的資料庫,成功限制住了 AI 的幻覺!

小結

今天我們透過動態變數與嚴格的系統 Prompt,讓 AI 成為了一個聽話且專業的硬體推薦大腦。

到目前為止,我們的 API 是「單次請求」的。前端發問 ➔ AI 回答 ➔ 結束。
但如果使用者看完菜單後,想接著問:「那如果我預算再加 5000,顯卡可以升級哪一張?」,目前的系統是做不到的,因為每次 API 呼叫對 AI 來說都是失憶的全新對話。

明天,我們要來介紹 Advanced AI 節點群裡的另一個殺手級應用:為 AI 裝上「記憶體 (Memory)」,在工作流中輕鬆實作具備上下文關聯的連續對話!

我們 Day 18 見!


上一篇
Day 16:喚醒大腦:在 n8n 串接 OpenAI / Gemini 雲端 AI 引擎
系列文
從零打造 AI 全端應用:Vibe Coding 結合 n8n 視覺化工作流實戰 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言